#!/bin/sh

VERSION=`make -s version`

print_header()
{
    cat <<- EOF 
[Setup]
AppName=Open Scene Graph
AppVerName=Open Scene Graph $VERSION
AppPublisher=OpenSceneGraph
AppPublisherURL=http://www.openscenegraph.com
AppSupportURL=http://www.openscenegraph.com
AppUpdatesURL=http://www.openscenegraph.com
DefaultDirName={pf}\OpenSceneGraph
DisableDirPage=yes
DefaultGroupName=OpenSceneGraph
DisableProgramGroupPage=yes
LicenseFile=LICENSE.txt
EOF
}

# Usage:
# do_dir $DIR
#

print_file_entry()
{
    DIR=$1
    FILE=$2
    printf "Source: \"%s\\\%s\"; DestDir: \"{app}\\\%s\\\"; Flags: ignoreversion\n"\
            $DIR $FILE  $DIR

}

do_dir()
{
    DIR=$1
    shift;

    DOS_DIR=`echo $DIR | sed 's/\\//\\\/g'`

    if [ $# -gt 0 ]
    then 
	while [ $# -gt 0 ]
        do
	    match=$1
            shift;
	    for f in `find $DIR -type f | \
				grep -v CVS | \
				grep osg |
				grep "$match"` 
            do
		print_file_entry $DOS_DIR `basename $f`
            done
        done
    else
	for f in `find $DIR -type f | grep -v CVS | grep osg`
        do
	    print_file_entry $DOS_DIR `basename $f`
	done
 
    fi
}

print_files()
{
    echo "[Files]"

    do_dir lib .lib
    do_dir bin .exe .dll
    for dir in `ls -1 include | grep osg | grep -v CVS`
    do
        do_dir include/"$dir"
    done
}

print_script()
{
    print_header 
    print_files  
}

BUILD_ISS=1
BUILD_DISTRIBUTION=1
CLEAN_UP=1

while [ $# -gt 0 ]
do
    case $1 in
       -c )
            BUILD_ISS=0
            BUILD_DISTRIBUTION=0
            CLEAN_UP=1
            ;;

       -d )
	    BUILD_ISS=0
            BUILD_DISTRIBUTION=1
            CLEAN_UP=0
		;;

       -n )
	   CLEAN_UP=0
	    ;;

       -s )
           BUILD_ISS=1
           BUILD_DISTRIBUTION=0
           CLEAN_UP=0
           ;;
    esac

    shift;
done

if [ $BUILD_ISS = 1 ]
then
    echo Building Inno Setup script ....
    rm -f osg.iss
	
    print_script | awk '{ printf "%s\r\n", $0 }' > osg.iss
fi

if [ $BUILD_DISTRIBUTION = 1 ]
then
    echo Building distribution ...
    OS=`uname | cut -b1-6`

    if [ "$OS" = "CYGWIN" ]
    then 
        C:/Program\ Files/Inno\ Setup\ 3/iscc.exe osg.iss
        [ -d dist/Win32 ] || mkdir -p dist/Win32
        mv Output/setup.exe dist/Win32/OpenSceneGraph_"$VERSION"_setup.exe
        rm -rf Output
     else
        echo "     Distribution may only be built under Cygwin with Inno Setup"
    fi
fi

if [ $CLEAN_UP = 1 ]
then
    echo Cleaning up...
    rm -f osg.iss
fi







